package slw.utils
{
	
	/**
	 * Tools
	 * 工具类，提供实用静态方法
	 * @author ddx<br/>
	 * 2011-5-25
	 *
	 */
	public class Tools
	{
		//
		
		/**
		 * 构造函数
		 * 
		 */
		public function Tools()
		{
			throw new Error("Tools 为静态类.");
		}
		
		/*
		-----------------------------------
		setter getter
		-----------------------------------
		*/
		
		/*
		-----------------------------------
		public  method
		-----------------------------------
		*/
		//
		/**
		 * 根据时间量返回时间对象:x年x月x日x时x分x秒x毫秒 具有以下属性:<br/>
		 * years 年<br/>
		 * months 月<br/>
		 * days 日<br/>
		 * hours 时<br/>
		 * minutes 分<br/>
		 * seconds 秒<br/>
		 * milliseconds 毫秒<br/>
		 * @param millisecond:Number毫秒
		 * 
		 */		
		public static function getTimeObject(millisecond:Number):Object{
			var date:Date=new Date(millisecond);
			var o:Object=new Object();
			o.years=date.fullYearUTC-1970;
			o.months=date.monthUTC;
			o.days=date.dateUTC-1;
			o.hours=date.hoursUTC;
			o.minutes=date.minutesUTC;
			o.seconds=date.secondsUTC;
			o.milliseconds=date.millisecondsUTC;
			return o;
		}
		//
		/**
		 * 返回指定位数数值字符串，位数不足时高位补0 
		 * @param value:Number 一个数值
		 * @param count:int 返回的字符串位数
		 * @return String
		 * 
		 */		
		public static function getMultipleValue(value:Number,count:int=2):String{
			var result:String=value.toString();
			while(result.length<count){
				result="0"+result;
			}
			
			return result;
		}
		//
		/**
		 * 由指定毫秒数返回倒计时时间:y-m-d h:m:s，如果y,m,d为0则省略，h,m,s始终不省略
		 * @param time:Number 毫秒
		 * @return 
		 * 
		 */		
		public static function getTime(time:Number):String{
			var o:Object=Tools.getTimeObject(time);
			var result:String="";
			var array:Array=[o.years,o.months,o.days,o.hours,o.minutes,o.seconds];
			var signs:Array=["-","-","  ",":",":",""];
			for(var i:int=0;i<array.length;i++){
				if(i>2||array[i]!=0){
					result+=getMultipleValue(array[i])+signs[i];
				}
			}
			
			return result;
		}
		/*
		-----------------------------------
		private  method
		-----------------------------------
		*/
		
	}
}